Audio plugin

An audio plugin is a dynamically linked library containing digital signal processing or sound synthesis functionality, which can be loaded by a computer program at runtime.[1] Audio plugins usually provide their own user interface, which often contains GUI widgets that can be used to control and visualise the plugin's audio parameters.[2]

The program used to dynamically load audio plugins is called a plugin host. Example hosts include Mainstage, Bidule, REAPER and Sonic Visualiser. It has also been shown that plugins can be used to host other plugins.[3]

Contents

Plugin types

There are three broad classes of audio plugin: those which transform existing audio samples, those which generate new audio samples through sound synthesis and those which analyse existing audio samples.[4] Although all plugin types can technically perform audio analysis, only specific formats provide a mechanism for analysis data to be returned to the host.[5]

Software architecture

Communication between host and plugin(s) is determined by a plugin API. The API declares functions and data structures that the plugin must define in order to be usable by a plugin host. Additionally a functional specification may be provided, which defines how the plugin should respond to function calls, and how the host should expect to handle function calls to the plugin. The specification may also include documentation about the meaning of variables and data structures declared in the API. The API header files, specification, shared libraries, license and documentation are sometimes bundled together in an SDK.[6][7]

Plugin formats

Name Vendor License GUI support Supported types Supported platforms
Virtual Studio Technology Steinberg Proprietary Yes Transformation Mac OS X, Windows, Linux (via WINE)
VSTi Steinberg Proprietary Yes Synthesis Mac OS X, Windows, Linux (via WINE)
Audio Units Apple Proprietary Yes Transformation, Synthesis Mac OS X
Real Time AudioSuite Avid Proprietary Yes Transformation, Synthesis Mac OS X, Windows
Avid Audio eXtension Avid Proprietary Yes Transformation, Synthesis Mac OS X, Windows
TDM Avid Proprietary Yes Transformation, Synthesis Mac OS X, Windows
LADSPA ladspa.org LGPL No Transformation Mac OS X, Windows, Linux
DSSI dssi.sourceforge.net LGPL, BSD Yes Transformation, Synthesis Mac OS X, Windows, Linux
LV2 lv2plug.in LGPL Yes Transformation, Synthesis Linux
DirectX Microsoft Proprietary Yes Transformation Windows
DXi Microsoft Proprietary Yes Synthesis Windows
VAMP vamp-plugins.org BSD-style No Analysis Mac OS X, Windows, Linux

See also

References

  1. ^ Collins, M. A Professional Guide to Audio Plug-ins and Virtual Instruments. Burlington: Focal Press, 2003
  2. ^ Goudard, V. and Müller, R.; Real-time audio plugin architectures. Technical report; 2003c.
  3. ^ Gibson, D. and Polfreman, R., 2011. An Architecture For Creating Hosting Plug- Ins For Use In Digital Audio Workstations. In: International Computer Music Conference 2011, 31 July - 5 August 2011, University of Huddersfield, England.
  4. ^ Goudard, V. and Müller, R.; Real-time audio plugin architectures. Technical report; 2003c.
  5. ^ Cannam, C. 2008., The vamp audio analysis plugin api: A programmer’s guide. [1]. Revision 1.0, covering the Vamp plugin SDK version 1.2. 51
  6. ^ VST SDK
  7. ^ VAMP SDK